#include <deDriver.hpp>
Inheritance diagram for IdeDriver:

Public Types | |
| enum | Types { DRIVER_INVALID = -1, DRIVER_DIRECT3D8 = 0, DRIVER_DIRECT3D9 = 2, DRIVER_OPENGL = 1, DRIVER_COUNT, DRIVER_FORCE_32BIT = 0x7FFFFFFF } |
| different driver types More... | |
| enum | BPP { BPP_UNKNOWN = 0, BPP_X1R5G5B5, BPP_A1R5G5B5, BPP_A4R4G4B4, BPP_X4R4G4B4, BPP_A8, BPP_R3G3B2, BPP_A8R3G3B2, BPP_A2B10G10R10, BPP_G16R16, BPP_R5G6B5, BPP_R8G8B8, BPP_A8R8G8B8, BPP_X8R8G8B8, BPP_P8, BPP_A8P8, BPP_L8, BPP_A8L8, BPP_A4L4, BPP_V8U8, BPP_Q8W8V8U8, BPP_V16U16, BPP_W11V11U10, BPP_L6V5U5, BPP_X8L8V8U8, BPP_A2W10V10U10, BPP_UYVY, BPP_YUY2, BPP_DXT1, BPP_DXT2, BPP_DXT3, BPP_DXT4, BPP_DXT5, BPP_R16F, BPP_G16R16F, BPP_A16B16G16R16F, BPP_R32F, BPP_G32R32F, BPP_A32B32G32R32F, BPP_COUNT, BPP_FORCE_32BIT = 0x7FFFFFFF } |
| types of color formats, indicating number of bits per channel More... | |
| enum | ZPP { ZPP_UNKNOWN = 0, ZPP_D16, ZPP_D15S1, ZPP_D24, ZPP_D24S4, ZPP_D24S8, ZPP_D32, ZPP_COUNT, ZPP_FORCE_32BIT = 0x7FFFFFFF } |
| possible z-buffer formats More... | |
| enum | RenderState { RENDER_ZENABLE = 0, RENDER_ZENABLEUSEW, RENDER_ZWRITESENABLE, RENDER_DEPTHFUNCTION, RENDER_DEPTHBIAS, RENDER_FILLMODE, RENDER_SHADEMODE, RENDER_COLORMASK, RENDER_ALPHATESTENABLE, RENDER_ALPHAREF, RENDER_ALPHAFUNCTION, RENDER_ALPHABLENDENABLE, RENDER_SOURCEBLEND, RENDER_DESTBLEND, RENDER_TEXTUREFACTOR, RENDER_CULLMODE, RENDER_FSAAENABLE, RENDER_FSAAMASK, RENDER_FOGENABLE, RENDER_FOGSTART, RENDER_FOGEND, RENDER_FOGCOLOR, RENDER_CLIPPINGENABLE, RENDER_SWVERTEXPROCESS, RENDER_HWLIGHTINGENABLE, RENDER_AMBIENTLIGHT, RENDER_DITHERENABLE, RENDER_SPECULARENABLE, RENDER_SPECULARPERSPECTIVE, RENDER_PERVERTEXCOLOR, RENDER_STENCILENABLE, RENDER_TWOSIDEDSTENCILENABLE, RENDER_STENCILREF, RENDER_STENCILMASK, RENDER_STENCILWRITEMASK, RENDER_STENCILFUNCTION, RENDER_STENCILFAIL, RENDER_STENCILZFAIL, RENDER_STENCILPASS, RENDER_CCW_STENCILFUNCTION, RENDER_CCW_STENCILFAIL, RENDER_CCW_STENCILZFAIL, RENDER_CCW_STENCILPASS, RENDER_COUNT, RENDER_FORCE_32BIT = 0x7FFFFFFF } |
| enum | RenderFillMode { FILL_POINT = 0, FILL_WIREFRAME, FILL_SOLID, FILL_COUNT, FILL_FORCE_32BIT = 0x7FFFFFFF } |
| list of fill modes for RENDER_FILLMODE More... | |
| enum | RenderCullMode { CULL_NONE = 0, CULL_CW, CULL_CCW, CULL_COUNT, CULL_FORCE_32BIT = 0x7FFFFFFF } |
| list of culling modes for RENDER_CULLMODE More... | |
| enum | RenderShadeMode { SHADE_FLAT = 0, SHADE_GOURAUD, SHADE_COUNT, SHADE_FORCE_32BIT = 0x7FFFFFFF } |
| list of shading modes for RENDER_SHADEMODE More... | |
| enum | RenderCmpFunc { COMPARE_NEVER = 0, COMPARE_LESS, COMPARE_EQUAL, COMPARE_LESSEQUAL, COMPARE_GREATER, COMPARE_GREATEREQUAL, COMPARE_NOTEQUAL, COMPARE_ALWAYS, COMPARE_COUNT, COMPARE_FORCE_32BIT = 0x7FFFFFFF } |
| function for comparing values when performing per-pixel tests More... | |
| enum | RenderStencilOp { STENCIL_KEEP = 0, STENCIL_ZERO, STENCIL_REPLACE, STENCIL_INCRWRAP, STENCIL_DECRWRAP, STENCIL_INVERT, STENCIL_INCR, STENCIL_DECR, STENCIL_COUNT, STENCIL_FORCE_32BIT = 0x7FFFFFFF } |
| enum | RenderBlend { BLEND_ZERO = 0, BLEND_ONE, BLEND_SOURCE, BLEND_INVERSESOURCE, BLEND_SOURCEALPHA, BLEND_INVERSESOURCEALPHA, BLEND_DEST, BLEND_INVERSEDEST, BLEND_DESTALPHA, BLEND_INVERSEDESTALPHA, BLEND_SOURCEALPHASAT, BLEND_COUNT, BLEND_FORCE_32BIT = 0x7FFFFFFF } |
| blending operation to perform More... | |
| enum | Resource { RESOURCE_UNKNOWN = -1, RESOURCE_DISPLAY, RESOURCE_DISPLAYWINDOWED, RESOURCE_TEXTURE, RESOURCE_RENDERTARGET, RESOURCE_DEPTHSTENCIL, RESOURCE_FSAA, RESOURCE_FSAAWINDOWED, RESOURCE_COUNT, RESOURCE_FORCE_32BIT = 0x7FFFFFFF } |
| resource types to feed into ValidFormat More... | |
| enum | QualityFlag { QUALITY_UNKNOWN = -1, QUALITY_ALLOW_TEXTURE_MANGLING, QUALITY_ALLOW_INVALID_TEXTURES, QUALITY_FLAG_COUNT, QUALITY_FORCE_32BIT = 0x7FFFFFFF } |
| settings for how the engine should allow quality compromises More... | |
Public Member Functions | |
| virtual long | Release ()=0 |
| Delete the object. | |
| virtual deBoolean | Init (HWND WindowHandle)=0 |
| virtual deBoolean | SetDisplay (deDisplay *Display)=0 |
| virtual deBoolean | Reset (deDisplay *Display=(0))=0 |
| virtual const deDisplay * | GetDisplay () const=0 |
| Get a pointer to the driver's internally-held display struct. | |
| virtual deBoolean | GetCurrentDisplay (long Adapter, deDisplay *Display) const=0 |
| virtual deBoolean | GetDisplayMode (long Adapter, long Mode, deDisplay *Display) const=0 |
| virtual const deDriverCaps * | GetCaps (long Adapter) const=0 |
| Fill a deDriverCaps structure with an adapter's device capabilities. | |
| virtual deRect | UpdateWindowRect ()=0 |
| Update the driver's knowledge of the client-window rect. | |
| virtual deRect | GetDisplayRect () const=0 |
| Get the driver's internally-held client-window rect. | |
| virtual long | GetAdapterCount () const=0 |
| Get the number of adapters supported under this driver. | |
| virtual long | GetModeCount (long Adapter) const=0 |
| Get the number of modes for a particular adapter. | |
| virtual deBoolean | WindowedAllowed (long Adapter) const=0 |
| Test whether windowed mode is allowed on a particular adapter. | |
| virtual deBoolean | ValidFormat (long Adapter, Resource ResourceType, BPP BPPType, ZPP ZPPType, BPP FrontBuffer, long ExtraFlag=0) const=0 |
| Test for a valid format for various resource types. | |
| virtual long | BitDepth (BPP BPPType) const=0 |
| Get the bit-depth of a particular color format. | |
| virtual long | BitDepth (ZPP ZPPType) const=0 |
| Get the bit-depth of a particular z-buffer format. | |
| virtual long | StencilDepth (ZPP ZPPType) const=0 |
| Get the bit-depth devoted to stencil channel in z-buffer format. | |
| virtual deBoolean | HasStencil (ZPP ZPPType) const=0 |
| Test whether a particular z-buffer format supports stenciling. | |
| virtual deBoolean | AddVertexBuffer (IdeVertexBuffer *Vertex)=0 |
| Add a vertex buffer to the driver. | |
| virtual deBoolean | RemoveVertexBuffer (IdeVertexBuffer *Vertex)=0 |
| Remove a vertex buffer from the driver. | |
| virtual deBoolean | UpdateVertexBuffer (IdeVertexBuffer *Vertex)=0 |
| Update a vertex buffer so the driver's internal data matches it. | |
| virtual deBoolean | AddShader (IdeShader *Shader)=0 |
| virtual deBoolean | SetShader (IdeShader *Shader)=0 |
| virtual deBoolean | RemoveShader (IdeShader *Shader)=0 |
| virtual deBoolean | BeginFrame ()=0 |
| Call before rendering anything. | |
| virtual deBoolean | EndFrame ()=0 |
| Finish the render and update the front-buffer. | |
| virtual deBoolean | ClearFrame (deARGB Color, deBoolean ClearTarget=(DE_TRUE), deBoolean ClearZBuffer=(DE_TRUE), deBoolean ClearStencil=(DE_TRUE))=0 |
| Clear the frame with a particular color. | |
| virtual deBoolean | Render (IdeVertexBuffer *VBuffer, long IndexOffset, IdeVertexBuffer *IndexOverride=(0))=0 |
| Render the selected Vertex Buffer to the back-buffer. | |
| virtual deBoolean | SetViewport (long X, long Y, long Width, long Height, deFloat MinZ, deFloat MaxZ)=0 |
| Set the screen-space viewport. | |
| virtual deBoolean | SetDepthRange (deFloat MinZ, deFloat MaxZ)=0 |
| virtual deBoolean | SetFOVClipping (deFloat FOV, deFloat Aspect, deFloat ClipNear, deFloat ClipFar)=0 |
| Set up a perspective view transformation. | |
| virtual deBoolean | SetOrthoClipping (deFloat Width, deFloat Height, deFloat ClipNear, deFloat ClipFar, deBoolean Invert=(DE_FALSE))=0 |
| Set up an orthographic (parallel projection) view transformation. | |
| virtual deBoolean | SetFOVClippingSubRect (deFloat FOVY, deFloat Aspect, deFloat ClipNear, deFloat ClipFar, deRect SubRect)=0 |
| Set up a perspective view transformation with a sub-rect specified in the [0,1] range. | |
| virtual deBoolean | SetFOVClippingSubRectFloat (deFloat FOVY, deFloat Aspect, deFloat ClipNear, deFloat ClipFar, deFloatRect SubRect)=0 |
| virtual deBoolean | SetOrthoClippingSubRect (deFloat Width, deFloat Height, deFloat ClipNear, deFloat ClipFar, deBoolean Invert, deRect SubRect)=0 |
| Set up an orthographic (parallel projection) view transformation with a sub-rect specified in the [0,1] range. | |
| virtual deBoolean | SetOrthoClippingSubRectFloat (deFloat Width, deFloat Height, deFloat ClipNear, deFloat ClipFar, deBoolean Invert, deFloatRect SubRect)=0 |
| virtual deBoolean | SetScissorRect (deRect ScissorRect)=0 |
| virtual deBoolean | SetCameraTransform (deTransformInfo *M)=0 |
| Set the camera transform (position and orientation). | |
| virtual deBoolean | SetWorldTransform (deTransformInfo *Mat)=0 |
| Set the world transform (to take things from "object space" to "world space"). | |
| virtual deBoolean | SetTextureTransform (long StageNum, deTransformInfo *Mat)=0 |
| Set the texture transform for a particular stage. | |
| virtual deBoolean | AddBitmap (IdeBitmap *Bitmap)=0 |
| Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target. | |
| virtual deBoolean | AddBitmapProxy (IdeBitmapProxy *BitmapProxy)=0 |
| Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target. | |
| virtual deBoolean | RemoveBitmap (IdeBitmap *Bitmap)=0 |
| Removes a bitmap from a driver by deleting the internal driver texture. | |
| virtual deBoolean | RenderTo (IdeBitmap *pBitmap, long CubeMapFace=0)=0 |
| virtual deBoolean | ScreenShot (IdeBitmap *&pBitmap, deBoolean GrabWindow=(DE_TRUE))=0 |
| virtual deBoolean | GetVideoTexture (IdeBitmap *pBitmap, long CubeMapFace=0)=0 |
| virtual unsigned long | GetRenderState (RenderState State)=0 |
| Get current value of the State passed in. | |
| virtual deBoolean | SetRenderState (const IdeRenderState *State)=0 |
| Set a class-based render-state (texture, material, or light). | |
| virtual deBoolean | SetRenderState (RenderState State, unsigned long Value)=0 |
| Set a value-based render-state. | |
| virtual deBoolean | EnableLight (long LightID, deBoolean Enable)=0 |
| virtual deBoolean | DisableAllLights ()=0 |
| Disable all fixed-function lights. | |
| virtual unsigned long | GetQualityFlag (QualityFlag Flag)=0 |
| Get the status of a particular quality flag. | |
| virtual deBoolean | SetQualityFlag (QualityFlag Flag, unsigned long Value)=0 |
| Set the status of a particular quality flag. | |
| virtual IdeDriver::Types | GetType () const=0 |
| Get the type of driver this is. | |
| virtual deDriverInfo * | GetInfo () const=0 |
| Get some information about the driver. | |
| virtual long | GetCount ()=0 |
| virtual void | LogInfo (char *Data,...)=0 |
| Log text to the driver's log file. | |
| virtual deDriverStats * | GetDriverStats ()=0 |
| Get a pointer to the driver's internal statistics structure. | |
| virtual void | ResetDriverStats ()=0 |
| Reset the driver's internal statistics structure to all zeroes. | |
Protected Member Functions | |
| virtual | ~IdeDriver () |
|
|
|
settings for how the engine should allow quality compromises
|
|
|
blending operation to perform
|
|
|
function for comparing values when performing per-pixel tests
|
|
|
list of culling modes for RENDER_CULLMODE
|
|
|
list of fill modes for RENDER_FILLMODE
|
|
|
list of shading modes for RENDER_SHADEMODE
|
|
|
list of renderstates that can be changed. specify deTRUE or deFALSE as the 2nd parameter to SetRenderState unless otherwise noted
|
|
|
operation to perform for stenciling. "max" value is (2^n)-1 where n is the bit-depth of the stencil buffer (unsigned integer). (StencilRef & StencilMask) RenderCmpFunc (StencilBufferValue & StencilMask)
|
|
|
resource types to feed into ValidFormat
|
|
|
different driver types
|
|
|
possible z-buffer formats
|
|
|
|
|
|
Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Add a vertex buffer to the driver.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Call before rendering anything.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Get the bit-depth of a particular z-buffer format.
Implemented in deDriver. |
|
|
Get the bit-depth of a particular color format.
Implemented in deDriver. |
|
||||||||||||||||||||
|
Clear the frame with a particular color.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Disable all fixed-function lights.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Finish the render and update the front-buffer.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Get the number of adapters supported under this driver.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Fill a deDriverCaps structure with an adapter's device capabilities.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Implemented in deDriver. |
|
||||||||||||
|
Fill a deDisplay with an adapter's CURRENT (even un-renderable) display settings. If a fullscreen rendering mode has not been set up, this will be the desktop settings. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Get a pointer to the driver's internally-held display struct.
Implemented in deDriver. |
|
||||||||||||||||
|
Feed in a display struct to be filled in for the enumerated mode
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Get the driver's internally-held client-window rect.
Implemented in deDriver. |
|
|
Get a pointer to the driver's internal statistics structure.
Implemented in deDriver. |
|
|
Get some information about the driver.
Implemented in deDirect3D8, deDirect3D9, and deDriver. |
|
|
Get the number of modes for a particular adapter.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Get the status of a particular quality flag.
Implemented in deDriver. |
|
|
Get current value of the State passed in.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Get the type of driver this is.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Test whether a particular z-buffer format supports stenciling.
Implemented in deDriver. |
|
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||
|
Log text to the driver's log file.
Implemented in deDriver. |
|
|
Delete the object.
Implemented in deDirect3D8, deDirect3D9, and deOpenGL. |
|
|
Removes a bitmap from a driver by deleting the internal driver texture.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Remove a vertex buffer from the driver.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||||||
|
Render the selected Vertex Buffer to the back-buffer.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||
|
Sets the current render-target to the bitmap passed in, if the bitmap can be a render-target.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Reset the driver, possibly with altered display properties. Resetting will cause all vertex buffers and textures to be flushed
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Reset the driver's internal statistics structure to all zeroes.
Implemented in deDriver. |
|
||||||||||||
|
Copies the frontbuffer into the bitmap specified cannot be a render-target
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Set the camera transform (position and orientation).
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||
|
Implemented in deDirect3D8, deDirect3D9, and deOpenGL. |
|
|
Set the display up, creating a new internal render device
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||||||||||
|
Set up a perspective view transformation.
|
|
||||||||||||||||||||||||
|
Set up a perspective view transformation with a sub-rect specified in the [0,1] range.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||||||||||||||
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||||||||||||||
|
Set up an orthographic (parallel projection) view transformation.
|
|
||||||||||||||||||||||||||||
|
Set up an orthographic (parallel projection) view transformation with a sub-rect specified in the [0,1] range.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||||||||||||||||||
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||
|
Set the status of a particular quality flag.
Implemented in deDriver. |
|
||||||||||||
|
Set a value-based render-state.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Set a class-based render-state (texture, material, or light).
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Implemented in deDirect3D9, and deDriver. |
|
|
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
||||||||||||
|
Set the texture transform for a particular stage.
Implemented in deDirect3D8, deDirect3D9, and deOpenGL. |
|
||||||||||||||||||||||||||||
|
Set the screen-space viewport.
|
|
|
Set the world transform (to take things from "object space" to "world space").
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Get the bit-depth devoted to stencil channel in z-buffer format.
Implemented in deDriver. |
|
|
Update a vertex buffer so the driver's internal data matches it.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Update the driver's knowledge of the client-window rect.
Implemented in deDriver. |
|
||||||||||||||||||||||||||||
|
Test for a valid format for various resource types.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
|
|
Test whether windowed mode is allowed on a particular adapter.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL. |
1.3-rc3